
// 主题匹配（即将样式应用于令牌）发生在JavaScript中。
// 因此，我们必须在JavaScript中注册主题规则。

// 自定义主题必须命名其基本主题（例如 'vs', 'vs-dark' 或者 'hc-black'）
// 然后它可以选择是否从基本主题继承规则。
// 规则令牌匹配是基于前缀的：例如。
//  - 字符串将与以下类型的令牌匹配：string, string.double.js or string.html
//  - string.double 将匹配类型为 string.double 的令牌，但不匹配 string 或 string.html

// !!! 可以使用 F1 > Developer: 来检查令牌。 !!!

monaco.editor.defineTheme('myCustomTheme', {
	base: 'vs', // 也可以是 vs-dark 或 hc-black
	inherit: true, // 也可以设置为 false 来完全替换内置规则
	rules: [
		{ token: 'comment', foreground: 'ffa500', fontStyle: 'italic underline' },
		{ token: 'comment.js', foreground: '008800', fontStyle: 'bold' },
		{ token: 'comment.css', foreground: '0000ff' } // 将从上面的 `comment` 继承 fontStyle
	]
});

monaco.editor.create(document.getElementById("container"), {
	value: getCode(),
	language: "text/html",
	theme: "myCustomTheme"
});

function getCode() {
	return "<html><!-- // !!! Tokens can be inspected using F1 > Developer: Inspect Tokens !!! -->\n<head>\n	<!-- HTML comment -->\n	<style type=\"text/css\">\n		/* CSS comment */\n	</style>\n	<script type=\"javascript\">\n		// JavaScript comment\n	</"+"script>\n</head>\n<body></body>\n</html>";
}
